package cn.com.bluemoon.daps.sync.core.sync.sql;

import cn.com.bluemoon.daps.model.entity.DapDataModelSubordinateKey;
import cn.com.bluemoon.daps.model.entity.DapDataModelTable;
import cn.com.bluemoon.daps.model.entity.DapDataModelTableField;
import cn.com.bluemoon.daps.model.entity.DapDataModelTablePartition;

import java.util.List;

/**
 * @author Jarod.Kong
 * @date 2021-06-05 22:11
 **/
public interface IBmSql {

    default String dropTable(String oldTableName) {
        return null;
    }

    default List<String> createTable(DapDataModelTable newT,
                                     List<DapDataModelTableField> newFs,
                                     List<DapDataModelSubordinateKey> newIs,
                                     List<DapDataModelTablePartition> newPs) {
        return null;
    }

    default List<String> changeTable(DapDataModelTable oldT, DapDataModelTable newT) {
        return null;
    }

    default String createField(DapDataModelTable newT, DapDataModelTableField newF, String preFieldName) {
        return null;
    }

    default String dropField(DapDataModelTable oldT, DapDataModelTableField oldF) {
        return null;
    }

    default String changeField(DapDataModelTable newT, DapDataModelTableField oldF, DapDataModelTableField newF, String preFieldName) {
        return null;
    }

    default String dropIndex(DapDataModelTable oldT, DapDataModelSubordinateKey oldI) {
        return null;
    }

    default String createIndex(DapDataModelTable newT, DapDataModelSubordinateKey newI) {
        return null;
    }

    default List<String> changeIndex(DapDataModelTable newT, DapDataModelSubordinateKey oldI, DapDataModelSubordinateKey newI) {
        return null;
    }
}
